home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / bbs_door / edoor09.zip / EDOOR.DOC < prev    next >
Text File  |  1996-02-08  |  12KB  |  384 lines

  1.                eDOOR v.9b!  (c) 1995-96 by Tom Fotherby/enigma
  2.  
  3. Features:
  4. ·Supports ALL com ports & irq's (Fossil Driver req'ed)
  5. ·Locked baud rates up to 115,200bps!
  6. ·ANSi Emulation built-in! (ansi.sys not needed under any circumstances)
  7. ·DOOR.SYS and Dorinfo#.DEF Support!
  8. ·DesqView, OS/2, Windows, and Dos time slicing routines.
  9. ·So simple to use, my Rabbit could program a door with this.. 8)
  10. ·It's being constantly updated with NEW and IMPROVED features!
  11. ·Registration fee is ONLY $10!  Free Upgrades!!
  12.  
  13. Introduction...
  14. ---------------
  15. This door-making kit is designed to let anyone with a basic knowlege of
  16. Turbo Pascal create doors, whether it be a door game, or a one liners
  17. program!  All you need is Turbo Pascal 7.0 and a little creativity.
  18.  
  19. Installation
  20. ~~~~~~~~~~~~
  21. Just copy 'Door.Tpu' into your Units directory (usually 'C:\TP\UNITS')
  22.  
  23. Lets cut to the programming!
  24. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  25. To impliment the door routines into your program, you must add "Door"
  26. To your uses statement.
  27. Example:
  28.  
  29.   Uses Door;
  30.  
  31. Now you're ready to begin!
  32.  
  33. Structure of the config file.
  34. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  35. The config file is just a standard text file, with the following lines in
  36. it.  For refrence, i've included a sample config file named 'SAMPLE.CFG'
  37. to get ya started.
  38.  
  39. Line #1 - The name of the BBS
  40. Line #2 - Sysop's name (first/last)
  41. Line #3 - drop file type ("door.sys" for door.sys systems, "dorinfo.def" for
  42.           dorinfo#.def systems)
  43. Line #4 - The locked baud rate.  If none, then set this to 0.
  44.  
  45. Parameters
  46. ~~~~~~~~~~
  47. This is a list of Parameters that can be used (after you compile your door!)
  48.  
  49. /N# - # is the node number, ex. door.exe /N1
  50. /B# - Sets the locked baud rate to #, ex. door.exe /B57600
  51. /D? - The path to where the Drop file may be found, ex. door.exe /Dc:\bbs
  52.  
  53. Loading the config file for the door..
  54. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  55.     Cfgfn:='file.cfg';
  56.     LoadCfg;
  57.       This will initialize the door with the config/drop files.  The
  58.       Config file name is stored in variable "Cfgfn".
  59.       (Refer to 'Structure of the Config File')
  60.  
  61. Output Procedures..
  62. ~~~~~~~~~~~~~~~~~~~
  63.     DClrScr;
  64.       Clears Local/Remote screens.
  65.  
  66.     DWrite(s: string);
  67.       Writes a string to local/remote.
  68.  
  69.     DWriteln(s: string);
  70.       Writes a string to local/remote, and adds a carriage return/line feed.
  71.  
  72.     DWritei(i: integer);
  73.       Writes an integer to local/remote.
  74.  
  75.     DWriteiln(i: integer);
  76.       Writes an integer to local/remote, and adds a cr/lf.
  77.  
  78.     DWriteli(i: integer);
  79.       Writes a longint to local/remote.
  80.  
  81.     DWriteliln(i: integer);
  82.       Writes a longint to local/remote, and adds a cr/lf.
  83.  
  84.     Crlf;
  85.       Just prints up a blank line.  I got sick of doing a "dwriteln('');"
  86.       every time i wanted to print up a blank line, so i thought this
  87.       little procedure would save some time.
  88.  
  89.     DGotoXY(x: byte, y: byte);
  90.       Equivilant of GOTOXY(x,y), use this instead. It puts the cursor
  91.       position at x,y. *NOTE* this only works if the user has ANSi
  92.       Emulation!
  93.  
  94.     TypeFile(filename: string, continue: boolean);
  95.       This will display a ans/asc file both locally and remotely..
  96.       Example:
  97.  
  98.         TypeFile('help', true);
  99.  
  100.       This will display the file Help.ans/Help.asc/Help rip, (depending
  101.       on which graphics emulation the remote side supports) With a
  102.       'More [Y/n]?' prompt every 24 lines. (this prompt is configurable,
  103.       see below!!) Also, you may specify a file extention, but it will
  104.       ONLY display that file, it WON'T pick .asc/.ans/.rip depending on
  105.       which graphics emulation the remote side has!!
  106.  
  107.     Moreyn: string;
  108.       You SHOULD define this string if you use the TypeFile command!
  109.       It is a prompt every 24 lines, asking the user 'More [Y/n]?'
  110.       Heres how mine looks:
  111.  
  112.         Moreyn:='More [Y/n]?';
  113.  
  114.         --OR, if you want a colorized pause string, use Pipe codes!--
  115.                         (see section on pipe codes)
  116.  
  117.         Moreyn:='|09More |07[|11Y|07/|05n|07]';
  118.  
  119. Colors!
  120. ~~~~~~~
  121.     Fg(foreground: byte);
  122.       Sets the foreground color.
  123.  
  124.     Bg(background: byte);
  125.       Sets the Background color.
  126.  
  127.     Dcolor(foreground: byte; background: byte);
  128.       Sets the foreground/background color..
  129.  
  130.                Foreground Colors              Background Colors
  131.  
  132.       0 - Black          8 - Dark Grey            0 - Black
  133.       1 - Dark Blue      9 - Light Blue           1 - Blue
  134.       2 - Dark Green    10 - Light Green          2 - Green
  135.       3 - Dark Cyan     11 - Light Cyan           3 - Cyan
  136.       4 - Dark Red      12 - Light Red            4 - Red
  137.       5 - Dark Magneta  13 - Light Magneta        5 - Magneta
  138.       6 - Dark Yellow   14 - Light Yellow         6 - Brown
  139.       7 - Gray          15 - White                7 - Gray
  140.  
  141.     DCW(s: string, color: byte);
  142.       ColorWrite!  Displays a string with the color of 'color'.
  143.       Example:
  144.  
  145.         Dcw('Hello World!', 1);
  146.  
  147.       (would display 'Hello World!' in blue)
  148.  
  149.       This would be the SAME as doing:
  150.  
  151.         Fg(1);
  152.         Dwrite('Hello World!');
  153.  
  154.     DCWLN(s: string, color: byte);
  155.       ColorWriteln!  Displays a string with the color of 'color'
  156.       This is the same as above, but puts an enter after it outputs
  157.       the string.
  158.  
  159.     DPipe(s: string);
  160.       It converts a String with Renegade/Forum hack PiPE codes
  161.       to colors! (Good for One Liners or text that changes colors a lot!)
  162.       *ALSO* see section on pipe codes.
  163.       Example:
  164.  
  165.         DPiPE('|01Blue |09LiGHT blue');
  166.  
  167.     DPipeln(s: string);
  168.       Same as above, but puts a enter after it outputs the text..
  169.  
  170.     RndClr;
  171.       Chooses a Random color, and sets the foreground to that color.
  172.  
  173.     RndClrStr(s: String);
  174.       Outputs a String in random colors!  (each letter in the string
  175.       will be a different color)
  176.      Example:
  177.  
  178.        RndClrStr('Hello there!');
  179.  
  180.     Spin(x, y, f, b, d: byte);
  181.       A Spinner Pause prompt.  X and Y are the coordinates, F, B are the
  182.       Foreground/Background colors, and D is the delay between each spin
  183.       Cycle. (To start out, use a delay of 30 or 50 for best results!)
  184.  
  185.     Dynlb(question, Yesno, Noyes: string): boolean; (function)
  186.       This will display a yes/no lightbar.  It uses Pipe codes (see section
  187.       on pipe codes) to display the Yes/No selections.
  188.      Example:
  189.  
  190.        x:=dynlb('Blah?', '|18|12 Yes |16 |01no ', '|16|01 yes |17 |12No |16');
  191.        if x=true then dwriteln('You chose Yes')
  192.          else dwriteln('You chose No');
  193.  
  194. String Conversion Functions
  195. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  196.     center(s: string): string;
  197.        Centers a string.
  198.        Example:
  199.          DWriteln(center('this will be centered!'));
  200.  
  201.     strupcase(s: string): string;
  202.        Converts a string to all uppercase.
  203.  
  204.     strlocase(s: string): string;
  205.        Converts a string to all lowercase.
  206.  
  207.     itos(i: integer): string;
  208.        Converts an integer to string.
  209.  
  210.     litos(li: longint): string;
  211.        Converts a Longint to string.
  212.  
  213.     wtos(w: word): string;
  214.        Converts a Word to string.
  215.  
  216.     btos(b: boolean): string;
  217.        Converts a Boolean to string.
  218.  
  219. These Functions will let you display other variable types with the DWrite,
  220. DPipe...etc. Procedures.
  221. Example:
  222.    DWriteln(itos(1234));
  223.  
  224. Input Procedures...
  225. ~~~~~~~~~~~~~~~~~~~
  226.     DRead(s: string);
  227.       Reads a STRING both locally and remote..
  228.  
  229.     DReadB(b: byte);
  230.       Reads a BYTE from local/remote side.
  231.  
  232.     DReadC(ch: char);
  233.       Reads a CHAR from the local/remote side.
  234.  
  235.     DReadI(n: integer);
  236.       Reads an INTEGER from local/remote sides..
  237.  
  238.     DReadLI(n: longint);
  239.       Reads a LONGINT from local/remote sides.
  240.  
  241.     DKeyPressed: Boolean;
  242.       Equiv. of KeyPressed..
  243.       Example:
  244.  
  245.           dwrite('Press a key to continue..');
  246.           repeat until DKeyPressed;
  247.  
  248.     INPT(s: string; lengthofstring: integer; fg: integer; bg: integer);
  249.       Inputs a string, with specifications/masked input.
  250.       Example:
  251.  
  252.           inpt(blah, 20, 9, 0);
  253.           dwriteln('You typed: '+blah);
  254.  
  255.       The above example will input a string with the maximum input length
  256.       of 20 characters, with a foreground color of 9 (blue) and a back-
  257.       ground color of 0 (black). 
  258.  
  259. General Variables
  260. ~~~~~~~~~~~~~~~~~
  261.     Cfgfn: String;
  262.        This variable holds the filename of the configuration file.
  263.        If you do not define this, Cfgfn will default to 'door.cfg'.
  264.  
  265.     DoorName: String;
  266.        Use this string to store the name of your program!
  267.        *NOTE* You should define this variable with the name of your
  268.        DOOR program!
  269.  
  270.     Bpsrate: integer;
  271.        This one stores BPS rate.
  272.  
  273.     Bbsname: String;
  274.        This Variable gives the bbs name (taken out of the drop file)
  275.  
  276.     Fg_Clr: byte;
  277.        This variable stores the current foreground color.
  278.  
  279.     Bg_Clr: byte;
  280.        This variable stores the current background color.
  281.  
  282.     Local: boolean;
  283.        True if local, false if remote.
  284.  
  285.     Pause: boolean;
  286.        If true, will display a 'Press a key to continue' prompt after
  287.        every 24 lines. This defaults to false.
  288.  
  289.     Pausestr: string;
  290.        It displayes this every 24 lines if Pause:=true.
  291.        You *SHOULD* set this if you use Pause!
  292.        Example..
  293.          Pausestr:='>>Paused.. Press a key<<';
  294.  
  295.     Node: byte;
  296.        Returns the current node #..  It is changed with the /N#
  297.        parameter (where # = the node #)
  298.  
  299.     TimeOut: String;
  300.        When a users time limit is overwith, it will display this
  301.        string..  Example:
  302.          TimeOut:='Your times up, returning to bbs!';
  303.  
  304.     Status: boolean;
  305.        If true, it will display the status line at the bottom of the screen,
  306.        if false, will NOT display the status line.  This defaults to true.
  307.  
  308.     StatusFg: byte;
  309.        The status line foreground color
  310.  
  311.     StatusBg: byte;
  312.        The status line background color
  313.  
  314.     SysopF: string;
  315.        The string that holds the Sysops 1st name (from config file)
  316.  
  317.     SysopL: string;
  318.        The string that holds the Sysops last name (from config file)
  319.  
  320.     UserH: string;
  321.        The users Handle
  322.  
  323.     UserF: string;
  324.        The users 1st name
  325.  
  326.     UserL: string;
  327.        The users last name
  328.  
  329.     UserAcs: word;
  330.        The users Access level (on the bbs, taken from drop file);
  331.  
  332. Pipe Codes, what are they/how do i use em?
  333. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  334. Pipe Codes are commonly used in BBS message bases to change colors of the
  335. text and stuff..  They are also a part of the DPipe and DPipeLn procedures!
  336. ...AND, they make changing colors alot, really easy!
  337.  
  338. Without Pipe codes:
  339.  
  340.   fg(1);
  341.   dwrite('Blue!');
  342.   fg(2);
  343.   dwrite('Green!');
  344.   fg(5);
  345.   dwrite('Purple!');
  346.  
  347. With PIPE CODES and the DPipe/DPipeln procedure:
  348.  
  349.   dpipe('|01Blue! |02Green! |05Purple!');
  350.  
  351. (Those two examples do exactly the same thing!)
  352.  
  353. Heres a list of the pipe codes:
  354.  
  355. |01 - Dark Blue            |08 - Dark Grey            |15 - White
  356. |02 - Dark Green           |09 - Light Blue
  357. |03 - Dark Cyan            |10 - Light Green
  358. |04 - Dark Red             |11 - Light Cyan
  359. |05 - Dark Purple          |12 - Light Red
  360. |06 - Dark Yellow          |13 - Light Purple
  361. |07 - Grey                 |14 - Light Yellow
  362.  
  363. Registration
  364. ~~~~~~~~~~~~
  365. Registration is a mere $10.  If you decide to use this door, please use one
  366. of the two methods of registration.
  367. #1) Dial 1-900-622-8227, and enter "651-6472" when it asks you for a number.
  368.     This call will cost you $10.  Next, call The O-Zone (Support) bbs, and
  369.     E-Mail enigma (sysop) with the code you have received from the 1-900#.
  370. #2) Send a $10 check or money order (made out to Tom Fotherby) to:
  371.     Tom Fotherby/eDOOR
  372.     3535 Hadden
  373.     Rochester, Mi 48306
  374.  
  375. There is NO difference between the non-registered eDOOR and registered eDOOR.
  376. But if you find this program useful, and understand how many hours i've put
  377. into it, PLEASE register.  Thanks!  -enigma
  378.  
  379. The O-Zone BBS
  380. (810) 651-6472
  381. eDOOR Support Site
  382. DiNK's Software support site
  383. virt! net WHQ
  384.